<?php

class CidadeModel extends Model {
    
    const P_KEY = 'Codigo';
    const T_NAME = 'Cidade';
    
    public static function GetAllCidade(){
        $ArCidades = array();
        $db = DB::getInstance();
        $db->execute('SELECT * FROM "Cidade" ORDER BY "UF", "Nome"');
        $ArResult = $db->fetchAll();
        foreach($ArResult as $Result){
            $Cidade = new Cidade($Result['Codigo']);
            $Cidade->setNome($Result['Nome']);
            $Cidade->setUF($Result['UF']);
            $ArCidades[] = $Cidade;
        }
        $db->close();
        return $ArCidades;
    }
    
    public static function GetByCodigo($Codigo){
        $Cidade = null;
        $Result = parent::getByKey(self::T_NAME, self::P_KEY, $Codigo);
        if(!empty($Result)){
            $Cidade = new Cidade($Result['Codigo']);
            $Cidade->setNome($Result['Nome']);
            $Cidade->setUF($Result['UF']);
        }
        return $Cidade;
    }
    
    public static function Save($Cidade){
        $db = db::getInstance();
        $db->execute("INSERT INTO \"Cidade\"(\"Nome\", \"UF\") VALUES ('{$db->escape($Cidade->getNome())}', '{$db->escape($Cidade->getUF())}')");
        return $db->affectedRows() > 0;
    }
    
    public static function Update($Cidade){
        $db = db::getInstance();
        $db->execute("UPDATE \"Cidade\" SET \"Nome\" = '{$db->escape($Cidade->getNome())}', \"UF\" = '{$db->escape($Cidade->getUF())}' WHERE \"Codigo\" = {$Cidade->getCodigo()}");
        return $db->affectedRows() > 0;
    }
    
    public static function Delete($Codigo){
        $db = db::getInstance();
        $db->execute("DELETE FROM \"Cidade\" WHERE \"Codigo\" = " . $Codigo);
        return $db->affectedRows() > 0;
    }
}

?>
